<?php
require_once('Parametros/Ubicacion/consultas.php');
class cn_ubicacion extends toba_cn
{
	//carga todo el conjunto de datos de la relacion en memoria
	function cargar($id=null){
		if(!$this->dep('relaciones_ubicacion')->esta_cargada()){
			if(!isset($id)){
				$this->dep('relaciones_ubicacion')->cargar();
			}else{
				$this->dep('relaciones_ubicacion')->cargar($id);	
			}
		}
	}

	//funcion para guardar
	function guardar(){
		try{
			$this->dep('relaciones_ubicacion')->sincronizar(); //sincroniza lo que tiene en memoria con la bd
			$this->dep('relaciones_ubicacion')->resetear(); //limpia los controles y esas cosas	
			}catch (toba_error_db $error) {
				$sql_state = $error->get_sqlstate();
				if ($sql_state == 'db_23505') { 
					//throw new toba_error_usuario('Ya existe el Numero de Pago');
					$this->informar_msg("Ya existe el registro");
				} else {
					throw $error;
				}
		}
	}

//----------------------operaciones para abm de paises----------------------

	//obtener un pais
	function obtener_pais($id){
		if($this->dep('relaciones_ubicacion')->tabla('pais')->esta_cargada()){ //si esta cargada
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('pais')->get_id_fila_condicion($id); //para saber que id en memoria representa al pais de la bd
			return $this->dep('relaciones_ubicacion')->tabla('pais')->get_fila($id_memoria[0]);
			}
		}

	//funcion para agregar una fila en memoria
	function agregar_pais($datos){
		if($this->dep('relaciones_ubicacion')->tabla('pais')->esta_cargada()){
			$this->dep('relaciones_ubicacion')->tabla('pais')->nueva_fila($datos);
			}
		}

	//modificar pais
	function modificar_pais($id,$datos){
		if($this->dep('relaciones_ubicacion')->tabla('pais')->esta_cargada()){
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('pais')->get_id_fila_condicion($id);
			ei_arbol($id_memoria);
			$this->dep('relaciones_ubicacion')->tabla('pais')->modificar_fila($id_memoria[0],$datos);
		}
	}
	
	//eliminar pais
	function eliminar_pais($id){
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('pais')->get_id_fila_condicion($id);
			//ei_arbol($id_memoria);
			$tiene_provincias = consultas::poseeProvincias($id['id_pais']);
			
			if(!$tiene_provincias){
				$this->dep('relaciones_ubicacion')->tabla('pais')->eliminar_fila($id_memoria[0]);
			}else{
				$this->informar_msg("el pais posee provincias");
			}
	}

//----------------------operaciones para abm de provincias----------------------

	//obtener una provincia
	function obtener_provincia($id){
		if($this->dep('relaciones_ubicacion')->tabla('provincia')->esta_cargada()){ //si esta cargada
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('provincia')->get_id_fila_condicion($id); //para saber que id en memoria representa al pais de la bd
			return $this->dep('relaciones_ubicacion')->tabla('provincia')->get_fila($id_memoria[0]);
			}
		}

	//funcion para agregar una fila en memoria
	function agregar_provincia($datos){
		if($this->dep('relaciones_ubicacion')->tabla('provincia')->esta_cargada()){
			$this->dep('relaciones_ubicacion')->tabla('provincia')->nueva_fila($datos);
			}
		}

	//modificar provincia
	function modificar_provincia($id,$datos){
		if($this->dep('relaciones_ubicacion')->tabla('provincia')->esta_cargada()){
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('provincia')->get_id_fila_condicion($id);
			ei_arbol($id_memoria);
			$this->dep('relaciones_ubicacion')->tabla('provincia')->modificar_fila($id_memoria[0],$datos);
		}
	}
	
	
	//eliminar provincia VERRRRRR
	function eliminar_provincia($id){
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('provincia')->get_id_fila_condicion($id);
			//ei_arbol($id_memoria);
			//$tiene_provincias = consultas::poseeProvincias($id['id_pais']);
			//if(!$tiene_provincias){
			$this->dep('relaciones_ubicacion')->tabla('provincia')->eliminar_fila($id_memoria[0]);
			//}else{
			//$this->informar_msg("el pais posee provincias");
			//}
			
	}
	
	//----------------------operaciones para abm de localidades----------------------

	//obtener una localidad
	function obtener_localidad($id){
		if($this->dep('relaciones_ubicacion')->tabla('localidad')->esta_cargada()){ //si esta cargada
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('localidad')->get_id_fila_condicion($id); //para saber que id en memoria representa al pais de la bd
			return $this->dep('relaciones_ubicacion')->tabla('localidad')->get_fila($id_memoria[0]);
			}
		}

	//funcion para agregar una fila en memoria
	function agregar_localidad($datos){
		if($this->dep('relaciones_ubicacion')->tabla('localidad')->esta_cargada()){
			$this->dep('relaciones_ubicacion')->tabla('localidad')->nueva_fila($datos);
			}
		}

	//modificar localidad
	function modificar_localidad($id,$datos){
		if($this->dep('relaciones_ubicacion')->tabla('localidad')->esta_cargada()){
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('localidad')->get_id_fila_condicion($id);
			ei_arbol($id_memoria);
			$this->dep('relaciones_ubicacion')->tabla('localidad')->modificar_fila($id_memoria[0],$datos);
		}
	}
	
	
	//eliminar localidad VERRRRRR
	function eliminar_localidad($id){
			$id_memoria = $this->dep('relaciones_ubicacion')->tabla('localid{ad')->get_id_fila_condicion($id);
			//ei_arbol($id_memoria);
			//$tiene_provincias = consultas::poseeProvincias($id['id_pais']);
			//if(!$tiene_provincias){
			$this->dep('relaciones_ubicacion')->tabla('localidad')->eliminar_fila($id_memoria[0]);
			//}else{
			//$this->informar_msg("el pais posee provincias");
			//}
			
	}
	
}
?>
